The invention relates to voice over Internet protocol (VOIP) communications, and more specifically to systems and methods for establishing a VOIP communications session with a telephony device.
Many mobile communications and computing devices are now configured to load and run software applications that can provide virtually any sort of functionality. And because many of these mobile communications and computing devices are able to establish a link to the Internet, either via a wireless router or via a data channel of a cellular data network, it is possible for a software application running on a mobile device to communicate via the Internet. Examples of such mobile communications and computing devices include the Apple iPhone™ and various mobile telephones that utilize the Android™ operating system.
Various telephony service providers have created communications software applications that can be loaded and run on a mobile communications device such as the Apple iPhone™. Some communications software applications provide functionality that allows an Internet Protocol (IP) telephony system to setup an IP telephony communication with a mobile communications device via an Internet connection or a cellular data connection that is provided by a cellular service provider. For example, when a mobile communications device is running one of these communications software applications, it is possible for an IP telephony system to establish an IP telephone call to the mobile communications device. However, if such a communications software application is not presently running on the mobile device, it can be difficult or impossible for the IP telephony system to communicate with the mobile device to setup a new telephony communication with the mobile device.
Also, the operating systems of some mobile communications devices allow a software application to be placed in a background mode for a period of time, or indefinitely. While in the background, the software application typically utilizes few, if any, resources of the mobile communications device. This helps to minimize battery power consumption. In some instances, an external device can send a wake up message to the mobile communications device to cause a software program in the background to be re-activated, or brought to the foreground. Once brought to the foreground, the software application can begin communicating with the external device which issued the wake up command. However, the operating systems of some mobile communications devices will not allow even a wake up command to be used to re-activate a software program that is in the background.
Because of these facts, when a calling party attempts to establish an IP telephone call to a called party's mobile communications device via an IP telephony system, it is often impossible for the IP telephony system to complete the telephone call to the called party's mobile device. As noted, in some instances, the communications software application is not running on the mobile communications device. In other instances, the communications software application is in the background, and it cannot be reactivated by a wake up command from an external device. In these instances, the IP telephony system cannot communicate with the communications software application, and therefore cannot establish a new IP telephone call to the called party's mobile device.
Moreover, when an IP telephony system is attempting to setup a new incoming call via a communications software application on a user's mobile device, the IP telephony system may not know if the communications software application is running on the called party's mobile device, or whether the software application is in the background on the mobile device. For these reasons, the IP telephony software application may not know the easiest or fastest way to setup a new incoming call to the mobile device.